[iOS] Fabric 入門 #5 Twitter にツイートを投稿する
ツイートしてみよう
前回に引き続き、Twitter Kit に触れていきたいと思います。いままでは Twitter からのデータの取得のみでしたが、今回は Twitter にツイートを投稿する処理を実装してみたいと思います。
ツイートの投稿については、容易に投稿できるよう TWTRComposer というクラスが提供されています。このクラスを利用すると、かなり簡単にツイート機能を実装することができます。
TWTRComposer を使ってみる
ということで、早速使ってみましょう。次のような実装になります。
#import "ViewController.h" #import <TwitterKit/TwitterKit.h> @interface ViewController () @property (weak, nonatomic) TWTRLogInButton *logInButton; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // TWTRLogInButtonの設定 TWTRLogInButton *logInButton = [TWTRLogInButton buttonWithLogInCompletion:^(TWTRSession *session, NSError *error) { if (error) { NSLog(@"Error : %@", error); } else { NSLog(@"UserName : %@", session.userName); self.logInButton.hidden = YES; [self composeTweet]; } }]; logInButton.center = self.view.center; self.logInButton = logInButton; [self.view addSubview:logInButton]; } - (void)composeTweet { TWTRComposer *composer = [TWTRComposer new]; [composer setText:@"ダンソン フィーザキー トゥーサフィーサーサ コンサ"]; [composer setImage:[UIImage imageNamed:@"Sample"]]; [composer showWithCompletion:^(TWTRComposerResult result) { if (result == TWTRComposerResultCancelled) { NSLog(@"ユーザーによりキャンセル"); } else { NSLog(@"ツイート完了"); } }]; } @end
実行すると Compose ダイアログが表示されます。投稿が完了すると、Twitter の鳥の鳴き声が聞こえます。
Social フレームワークとの違い
と、ここまででお気づきの方も多いと思いますが、標準で利用できる Social フレームワークとよく似ています。以下は Social フレームワークを使った場合の実装です。
- (void)composeTweet { SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; [controller setInitialText:@"ダンソン フィーザキー トゥーサフィーサーサ コンサ"]; [controller addImage:[UIImage imageNamed:@"Sample"]]; [self presentViewController:controller animated:YES completion:nil]; }
で、違いはというと…ありません!投稿されたツイートの情報を見ても、両者による違いは特に見つけられませんでした。
まとめ
Fabric を利用したツイートの投稿は、Social フレームワークを触ったことがある人でも、そうでない人でも、簡単に実装できるということが分かりました。どちらを利用したほうが良いか?については、Facebook の投稿も利用する場合は Social フレームワークを、Twitter しか使う予定がない場合は Fabric を使うとまとまりが出て良いのかなぁ、という感じです。どちらも簡単に実装できるので、どっちでも良いとも思います。